stdlib.h
এর ইউটিলিটি ফাংশনসমূহstdlib.h
হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় স্ট্যান্ডার্ড লাইব্রেরির বিভিন্ন ইউটিলিটি ফাংশন সরবরাহ করে। এই ফাংশনগুলো বিভিন্ন ধরনের কাজ সম্পাদন করতে ব্যবহৃত হয়, যেমন ডাইনামিক মেমোরি অ্যালোকেশন, টাইপ কাস্টিং, এলিমেন্ট সোর্টিং, সংখ্যার রূপান্তর, র্যান্ডম সংখ্যা উৎপাদন ইত্যাদি।
এখানে stdlib.h
এর কিছু গুরুত্বপূর্ণ ইউটিলিটি ফাংশনের ব্যাখ্যা দেওয়া হলো:
atoi()
– স্ট্রিং থেকে ইন্টিজার রূপান্তরatoi()
ফাংশনটি একটি স্ট্রিংকে ইন্টিজারে রূপান্তর করে। যদি স্ট্রিংয়ে বৈধ সংখ্যা থাকে, তবে এটি সংখ্যায় রূপান্তর করে।
int atoi(const char *str);
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123";
int num = atoi(str);
printf("Integer: %d\n", num);
return 0;
}
atof()
– স্ট্রিং থেকে ফ্লোট রূপান্তরatof()
ফাংশনটি একটি স্ট্রিংকে ফ্লোটিং পয়েন্ট সংখ্যায় রূপান্তর করে।
double atof(const char *str);
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "3.14159";
double num = atof(str);
printf("Float: %lf\n", num);
return 0;
}
atol()
এবং atoll()
– স্ট্রিং থেকে লং ইন্টিজার এবং লং লং ইন্টিজার রূপান্তরatol()
এবং atoll()
ফাংশনগুলো স্ট্রিংকে যথাক্রমে long
এবং long long
ইন্টিজারে রূপান্তর করে।
long int atol(const char *str);
long long int atoll(const char *str);
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "123456";
long int num = atol(str);
printf("Long int: %ld\n", num);
return 0;
}
rand()
– র্যান্ডম সংখ্যা তৈরিrand()
ফাংশনটি র্যান্ডম সংখ্যা তৈরি করতে ব্যবহৃত হয়। এটি ০ থেকে RAND_MAX
পর্যন্ত একটি সংখ্যা রিটার্ন করে।
int rand(void);
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Random number: %d\n", rand());
return 0;
}
বিঃদ্রঃ: র্যান্ডম সংখ্যা সিড সেট করার জন্য
srand()
ফাংশনটি ব্যবহার করা হয়।
srand()
– র্যান্ডম সংখ্যা সিড সেট করাsrand()
ফাংশনটি rand()
ফাংশনের জন্য একটি সিড (seed) সেট করে, যা প্রতিবার আলাদা র্যান্ডম সংখ্যা উৎপন্ন করতে সহায়ক।
void srand(unsigned int seed);
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0)); // সিড হিসেবে বর্তমান সময় ব্যবহার করা
printf("Random number: %d\n", rand());
return 0;
}
abs()
– ইন্টিজারের অ্যাবসোলিউট মান নির্ণয়abs()
ফাংশনটি একটি ইন্টিজার সংখ্যার অ্যাবসোলিউট মান নির্ণয় করতে ব্যবহৃত হয়।
int abs(int n);
#include <stdio.h>
#include <stdlib.h>
int main() {
int num = -10;
printf("Absolute value: %d\n", abs(num));
return 0;
}
labs()
এবং llabs()
– লং এবং লং লং ইন্টিজারের অ্যাবসোলিউট মান নির্ণয়labs()
এবং llabs()
ফাংশনগুলো যথাক্রমে long
এবং long long
ইন্টিজারের অ্যাবসোলিউট মান নির্ণয় করতে ব্যবহৃত হয়।
long int labs(long int n);
long long int llabs(long long int n);
#include <stdio.h>
#include <stdlib.h>
int main() {
long int num = -123456;
printf("Absolute long int value: %ld\n", labs(num));
return 0;
}
qsort()
– এলিমেন্ট সোর্ট করাqsort()
ফাংশনটি একটি এরে বা ডেটা এলিমেন্টকে দ্রুত (quick sort) পদ্ধতিতে সজ্জিত করতে ব্যবহৃত হয়। এটি যে কোন ধরনের ডেটা টাইপের সাথে কাজ করতে পারে।
void qsort(void *base, size_t num, size_t size, int (*compar)(const void *, const void *));
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[] = {5, 2, 8, 1, 4};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
bsearch()
– বাইনারি সার্চbsearch()
ফাংশনটি একটি সজ্জিত (sorted) এরে থেকে একটি নির্দিষ্ট এলিমেন্ট খুঁজে বের করতে ব্যবহৃত হয়। এটি বাইনারি সার্চ অ্যালগরিদম ব্যবহার করে কাজ করে।
void *bsearch(const void *key, const void *base, size_t num, size_t size, int (*compar)(const void *, const void *));
#include <stdio.h>
#include <stdlib.h>
int compare(const void *a, const void *b) {
return (*(int *)a - *(int *)b);
}
int main() {
int arr[] = {1, 2, 4, 5, 8};
int n = sizeof(arr) / sizeof(arr[0]);
int key = 4;
int *item = (int *)bsearch(&key, arr, n, sizeof(int), compare);
if (item != NULL) {
printf("Element found: %d\n", *item);
} else {
printf("Element not found\n");
}
return 0;
}
ফাংশন | কাজ | উদাহরণ |
---|---|---|
atoi() | স্ট্রিং থেকে ইন্টিজারে রূপান্তর | atoi("123"); |
atof() | স্ট্রিং থেকে ফ্লোটে রূপান্তর | atof("3.14"); |
atol() | স্ট্রিং থেকে লং ইন্টিজারে রূপান্তর | atol("123456"); |
rand() | র্যান্ডম সংখ্যা তৈরি | rand(); |
srand() | র্যান্ডম সংখ্যা সিড সেট করা | srand(time(0)); |
abs() | ইন্টিজারের অ্যাবসোলিউট মান নির্ণয় | abs(-10); |
qsort() | এলিমেন্ট সজ্জিত (সোর্ট) করা | qsort(arr, n, sizeof(int), compare); |
bsearch() | বাইনারি সার্চ | bsearch(&key, arr, n, sizeof(int), compare); |
stdlib.h
এর এই ইউটিলিটি ফাংশনগুলো সি প্রোগ্রামিংয়ে বিভিন্ন ধরনের কার্যকর কাজ সম্পাদন করতে সহায়ক, যেমন ডেটা রূপান্তর, মেমোরি ম্যানেজমেন্ট, র্যান্ডম সংখ্যা উৎপাদন, এবং সঠিকভাবে ডেটা সার্চ ও সজ্জিতকরণ।
common.read_more